using System;
using System.Collections.Generic;
using System.Text;
using Infragistics.Win.UltraWinToolbars;
using Infragistics.Win.UltraWinStatusBar;
using Infragistics.Win.UltraWinTree;
using System.Data;
using System.Drawing;
using System.IO;
using RetailAnalytic.Core;

namespace RetailAnalytic.Core
{
    public interface IFormTemplate
    {
         void SetGuiAppearance();
    }
    public interface IModule
    {
        string Key { get;}
        string Name { get; }
        string Description { get; }
        string Version { get; }
        string Author { get; }
        string AssemblyName { get;}
        string OurFirm { get; }
        Image Icon { get;}
        Image IconSelect { get;}
        Image ToolBarImage { get; }
        string ToolBarTitle { get; }
        string TitleDescription { get; }
        bool HasChild { get; }
    }
    public interface IGlobalServiceModule : IModule
    {
        // ServiceModuleList ServiceModuleName { get;}
        void InitializeModule(IMainShell mainShell);
        //void InitializeModule();
        void ExecuteService(params object[] parameters);
    }
    public interface IGlobalPresentationModule : IModule
    {
        // Presentation PresentationView { get;}
        //void InitializeModule(IMainShell MainShell);

        void InitializeModule(IMainShell mainShell);
        PresentationBase ExecuteProperty(PresentationBase _presentationBase, bool isCreateNew);
        bool ExecuteWizard(PresentationBase ParentPresentationBase, out PresentationBase _presentationBase);
        string ExecutePresentation(PresentationBase _presentationBase, IMainShell MainShell);
        void CopyMove(PresentationBase _presentationCurent, PresentationBase _presentationParent, bool _copy);
        string GetRibbonKey(PresentationBase _presentationBase);
        bool SaveClosePresentation(PresentationBase _presentationBase, bool isSave, bool isQuestion, bool isClose);
        bool ClosePresentation(PresentationBase _presentationBase, bool isQuestion, bool isClose);
        bool DeletePresentation(PresentationBase _presentationBase, bool isQuestion);
    }
    public interface IMainShell
    {
//        System.Windows.Forms.IWin32Window HandleShellWindow { get;}
        System.Windows.Forms.Form MainWindow { get;}
        PresentationBase CurentNodeClassTask { get; }
        
//        Int32 CurrentNodeClassTaskTree { get; set; }
        UltraToolbarsManager MainToolbarManager { get;}
        ////RibbonTabCollection  MainRibbonTab { get;  set; }
        RibbonTab MainRibbonTab { get;  }
        RibbonGroup MainRibbonTabGroupCreatePresentation { get;  }
        PopupGalleryTool PresentationsList { get;}
        RibbonGroup MainRibbonTabGroupActionPresentation { get;  }
        RibbonTab ViewRibbonTab { get; }
        RibbonGroup ViewRibbonTabGroupDesktop { get;  }
        RibbonGroup ViewRibbonTabGroupWindows { get;  }
        RibbonTab ServiceRibbonTab { get;   }
        RibbonGroup ServiceRibbonTabGroupSystem { get;  }
        RibbonGroup ServiceRibbonTabGroupExtend { get;  }
        UltraStatusBar StatusBar { get;  }
        UltraStatusPanel sp_server { get;  }
        UltraStatusPanel sp_dbname { get;  }
        UltraStatusPanel sp_username { get;  }
        UltraStatusPanel sp_build { get;  }
        UltraStatusPanel sp_extend { get;  }
        UltraTree PresentationTree { get; }
    }
    public interface ICommandBar<T>
    { 
    }
}

